Теорема о СКНФ. Следствие о КНФ

Теорема о существовании СКНФ

Формулировка:

Любая булева функция, не равная константе $1$, задается некоторой СКНФ.

Д-во:

Пусть $f(x_1, \dots, x_k)$ отлична от константы $1$. Построим СКНФ $F$ по следующему правилу: для каждого битового вектора $\vec{b} = (b_1, \dots, b_k)$ такого, что $f(b_1, \dots, b_k) = 0$, поместим в $F$ элементарную дизъюнкцию $D_{\vec{b}} = x_1^{\bar{b}_1} \lor \dots \lor x_k^{\bar{b}_k}$. Построенная формула — СКНФ по определению. Докажем, что $F$ задает $f$. Функция, заданная КНФ, равна $0 \iff$ одна из элементарных дизъюнкций равна $0$. Тогда выполняется: $$f(b_1, \dots, b_k) = 0 \iff D_{\vec{b}}(b_1, \dots, b_k) = 0$$ $\square$

Следствие о представимости КНФ

Формулировка:

Любая булева функция задается некоторой КНФ.

Д-во:

Для функций, отличных от $1$, это следует из теоремы выше. Для константы $1$: $x \lor \bar{x}$ — КНФ, задающая $1$.